# @Time    :2025/3/28 19:11
"""
    该案例再次对匿名函数进行说明
"""

# list1  要处理的集合
# func   对集合中元素的处理逻辑 自己定义的func 也可以叫其他的fu
list1 = list(range(1, 5))
print(list1, type(list1))


def my_map(list1, func):
    for i, item in enumerate(list1):
        print(i ,item)
        list1[i] = func(item)
    return list1


print(my_map(list1, lambda i: i * 2))#[2, 4, 6, 8]



"""
做题思路：
1，先用range 遍历出1-4之间的数字，range类型转成list列表
2，定义一个函数 my_map(),把两个参数放进去，list1是要处理的集合，func 是对集合元素的处理
3，对列表list1 用enumerate进行遍历可以取出 
list1的下标 和下标对应的索引
list1=[1,2,3,4]
i=0 时 item=1
i=1 时 item=2
i=2 时 item=3
i=3 时 item=4
4,func 传入的参数 被定义为lambda i: i * 2。
list1[i]=  list1[0]时，func(item) 1：1*2=2 list1=[1,2,3,4]被修改为list1=[2,2,3,4]
list1[i]=  list1[1]时，func(item) 2：2*2=4                             [2,4,3,4]
list1[i]=  list1[2]时，func(item) 3：3*2=6                             [2,4,6,4]
list1[i]=  list1[3]时，func(item) 4：4*2=8                             [2,4,6,8]

"""








"""
#使用enumerate 同时获取tuple的下标和元素
lis1 = [100, 200, 300, 400, 500]
for i ,val in enumerate(lis1):
    print(i,val)
    
    """
